package com.project.common.util;

import java.util.ArrayList;
import java.util.StringTokenizer;

/**
 * 資料處理工具類別 <br/>
 * 
 * @author Chiu Han-sung, 2010/5/19 <br/>
 *
 */
public class DataUtil {

	/**
	 * 判斷所傳入的字串是不是一個數字 <br/>
	 * 
	 * @param num
	 * @return
	 */
	public static boolean isNubmer(String num) {
		
		try {
			Double.parseDouble(num);
		} catch (Exception e) {
			return false;
		}
		
		return true;
	}
	
	/**
	 * 將BLK字串陣列,轉換
	 * @param blkList
	 * @return
	 */
	public static String convertBlkToSql(String[] blkList) {

		StringBuffer result = new StringBuffer();
		int length = blkList.length;
		if(length==0) {
			return result.toString();
		}
		
		for(int i=0; i<length; i++) {
			result.append("'"+blkList[i]+"',");
		}
		
		// 去掉最後的逗號
		int dot = result.lastIndexOf(",");
		
		return result.substring(0, dot);
	}
	
	/**
	 * 將以特定符合分隔的字串轉成字串陣列 <br/>
	 * 
	 * @param str
	 * @param split
	 * @return
	 */
	public static String[] convertToStringArray(String str, String split) {
		
		StringTokenizer st = new StringTokenizer(str, split);
		ArrayList<String> list = new ArrayList<String>();
		while(st.hasMoreElements()) {
			String blk = (String) st.nextElement();
			list.add(blk);
		}
		
		int length = list.size();
		String[] result = new String[length];
		for(int i=0; i<length; i++) {
			result[i] = list.get(i);
		}
		
		return result;
	}
	
	/**
	 * 將傳入的字串陣列值列印到標準輸出 </br>
	 * 
	 * @param inStr
	 */
	public static void printAll(String[] inStr) {
		if(inStr!=null) {
			for(int i=0; i<inStr.length; i++) {
				System.out.print(inStr[i] + ",");
			}
		}
	}
	
	/**
	 * 判斷Key值是否在字串陣列中 <br/>
	 * 
	 * @param inStr
	 * @param key
	 * @return
	 */
	public static boolean containKey(String[] inStr, String key) {
		key = key.trim();
		for(int i=0; i<inStr.length; i++) {
			if(key.equals(inStr[i].trim())) {
				return true;
			}
		}
		return false;
	}
	
	static boolean foo(char c) {
		 System.out.print(c);
		 return true;
	}
	
	/**
	 * 將傳入的字串右補空白 <br/>
	 * 
	 * @param s
	 * @param n 位數
	 * @return
	 */
	public static String padRight(String s, int n) {
		if(s==null) {
			s = "";
		}
		
	    return String.format("%1$-" + n + "s", s);  
	}

	/**
	 * 將傳入的字串左補空白 <br/>
	 * 
	 * @param s
	 * @param n 位數
	 * @return
	 */
	public static String padLeft(String s, int n) {
		if(s==null) {
			s = "";
		}
		
	    return String.format("%1$#" + n + "s", s);  
	}
	
	/**
	 * 將傳入的整數右補0至指定位數 <br/>
	 * 
	 * @param number
	 * @param n
	 * @return
	 */
	public static String padLeftNumber(int number, int n) {
		
	    return String.format("%0" + Integer.toString(n) + "d", number);  
	}	
	

	
	public static void main(String args[]) {

	}

}
